package org.epic.regexp;

import org.eclipse.ui.plugin.*;
import org.eclipse.core.runtime.*;
import org.eclipse.core.resources.*;

import java.io.IOException;
import java.net.URL;
import java.util.*;

/**
 * The main plugin class to be used in the desktop.
 */
public class RegExpPlugin extends AbstractUIPlugin {
    //The shared instance.
    private static RegExpPlugin plugin;
    //Resource bundle.
    private ResourceBundle resourceBundle;
    
    /**
     * The constructor.
     */
    public RegExpPlugin() {
        super();
        plugin = this;
        try {
            resourceBundle= ResourceBundle.getBundle("org.epic.regexp.RegexpPluginResources");
        } catch (MissingResourceException x) {
            resourceBundle = null;
        }
    }

    /**
     * Returns the shared instance.
     */
    public static RegExpPlugin getDefault() {
        return plugin;
    }

    /**
     * Returns the workspace instance.
     */
    public static IWorkspace getWorkspace() {
        return ResourcesPlugin.getWorkspace();
    }

    /**
     * Returns the string from the plugin's resource bundle,
     * or 'key' if not found.
     */
    public static String getResourceString(String key) {
        ResourceBundle bundle= RegExpPlugin.getDefault().getResourceBundle();
        try {
            return bundle.getString(key);
        } catch (MissingResourceException e) {
            return key;
        }
    }

    /**
     * Returns the plugin's resource bundle,
     */
    public ResourceBundle getResourceBundle() {
        return resourceBundle;
    }
    
    static public String getPlugInDir()
    {
        URL installURL = getDefault().getBundle().getEntry("/");
            
        try
        {
            installURL = FileLocator.resolve(installURL);
        } catch (IOException e)
        {
            e.printStackTrace();
        }
        return installURL.toExternalForm();
    }
}
